МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Розрахунково-графічна робота
з курсу "Чисельні методи"
Підготував:
студент групи КН-23
Мельник Юрій
Перевірив:
к.т.н., доцент кафкдри САПР
Денисюк П.Ю.
Львів-2014
МЕТА РОБОТИ
Мета роботи – закріпити знання отримані при вивченні курсу «Чисельні методи в інформатиці» та ознайомитися з новими відомими чисельними методами.
Завдання:
Розв'язати систему лінійних алгебраїчних рівнянь методом Гаусса за схемою Халецького наведену у Додатку 1 згідно варіанту індивідуального завдання отриманого у викладача. Навести хід розв’язку. Здійснити перевірку розв’язку СЛАР за допомогою 2 ітерацій методом простої ітерації. Написати програму.
19.
Побудувати графік функції наведеної у додатку 2 згідно варіанту індивідуального завдання отриманого у викладача. На заданому інтервалі для 5 різних точок побудувати інтерполяційний поліном (степінь див. додаток 2). За допомогою інтерполяційного полінома дослідити вплив степені полінома на точність одержаних результатів. Написати программу
Дати розгорнуту відповідь на контрольні запитання наведені у додатку.
37. Метод простих інтерацій. Метод Зейделя.
9.Інтеполітаційний поліном Ерміта.Програмна реалізація.
Хід роботи:
I. Для виконання даного завдання нам потрібно виконати ряд дій:
Спочатку заповнюємо таблицю коефіцієнтів і таблицю вільних членів, відповідно до завдання;
Отримуємо розв’язок системи рівнянь за методом Гауса
Задаємо точність обчислення для методу простих ітерацій;
Знаходимо розв’язки системи рівнянь за допомогою методу простих ітерацій, а також ітерацію, на якій цей розв’язок було знайдено;
Результати даних дій почергово виводяться на екран, для методу простих ітерацій на екран виводяться матриці знормованої системи;
Аналізуємо отримані результати;
Код програми в середовищі MATLAB:
clear all;
clc;
disp('Таблиця коефіцієнтів:')
A 11 -2 -2 -1; -1 -9 2 -3; -6 -1 -14 8; 2 -3 -1 15]
disp('Таблиця вільних членів:')
B=[ 3; 6; -10; -8]
r=4;
disp('Метод Гауса')
Od=rref([A B]); %отримання одиничної матриці з розширеної
X=Od(1:r,(r+1)) %корені системи рівнянь
disp('Метод простих ітерацій')
%зведення системи до нормальної
AA=A'*A;
BB=A'*B;
e=0.00001;
t=0;
iter=0;
% кількість ітерацій
disp('Матриця A знормованої системи(A"A)');
disp(AA); %вивід матриці коефіцієнтів
disp('Матриця B знормованої системи(A"B)');
disp(BB); %вивід матриці вільних членів
NumIter=30;
for i=1:4,
for j=1:4,
if i==j
c(i,j)=0;
else
c(i,j)=-AA(i,j)/AA(i,i);
end;
end;
end;
for i=1:4,
d(i)=BB(i)/AA(i,i);
end;
for i=1:4,
sum1=0;
for j=1:4,
sum1=sum1+c(i,j);
end;
s1(i)=sum1;
end;
for i=2:4,
if s1(i)>sum1
sum1=s1(i);
end;
end;
ifabs(sum1)<1
for i=1:4,
x0(i)=d(i);
end;
for i=1:4,
s=0;
for j=1:4,
s=s+c(i,j)*x0(j);
end;
xk(i)=s;
end;
for i=1:4,
xk(i)=xk(i)+d(i);
end;
while((t<4)||(t>4))
iter=iter+1;
for i=1:4,
x0(i)=xk(i);
z(i)=x0(i);
end;
for i=1:4,
s=0;
for j=1:4,
s=s+c(i,j)*z(j);
xk(i)=s+d(i);
z(i)=xk(i);
end;
end;
t=0;
for i=1:4,
if(abs(xk(i)-x0(i))<e)
t=t+1;
end;
if t==4
for j=1:4,
disp(['X',num2str(j),' = ', num2str(xk(j))]);
end;
disp(['Ітерація ',num2str(iter)]);
end;
end;
end;
else
disp('Система не вирішена');
end;
Результат виконяння програми:
Таблиця коефіцієнтів:
A =
11 -2 -2 -1
-1 -9 2 -3
-6 -1 -14 8
2 -3 -1 15
Таблиця вільних членів:
B =
3
6
-10
-8
Метод Гауса
X =
0.1963
-0.4135
0.3043
-0.6219
Метод простих ітерацій
Матриця A знормованої системи(A"A)
162 -13 58 -26
-...